package com.css.fxfzypg.modules.resultManagement.reportManagement.service;

import com.css.fxfzypg.base.response.RestResponse;
import com.css.fxfzypg.modules.baseData.entity.GasstationData;
import com.css.fxfzypg.modules.baseData.entity.RiskEnterpriseData;
import com.css.fxfzypg.modules.resultManagement.reportManagement.VO.ReportInfoVO;
import com.css.fxfzypg.modules.resultManagement.reportManagement.VO.ReportManagementVO;
import com.css.fxfzypg.modules.resultManagement.reportManagement.VO.SeiEmeCapAssVO;
import com.css.fxfzypg.modules.resultManagement.reportManagement.entity.HistoryUploadReport;
import com.css.fxfzypg.modules.resultManagement.reportManagement.entity.ReportManagement;
import com.css.fxfzypg.modules.test.CustomXWPFDocument;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.List;
import java.util.Map;

/**
 * @author DBJ
 */
public interface ReportManagementService {
    Map<String, Object> getPage(ReportManagementVO vo, int curPage, int pageSize);

    ReportManagement getReportByTaskId(String taskId);

    ReportManagement createReport(String taskId, String type, String level,String dataSource,String SimplifiedReportTemplate,String DeReportTemplate,String attachId, HttpServletResponse response) throws FileNotFoundException, Exception;

    RestResponse uploadReport(MultipartFile file, String type, String level,String dataSource,String taskId);

    void downloadReport(String reportId,String type,String def,HttpServletResponse res) throws IOException;

    Map<String, Object> getHistoryReportByTaskId(String taskId,int curPage,int pageSize);

    void downloadHistoryReport(String reportId, HttpServletResponse res);

    void submitReview(String reportId);

    ReportManagement getReport(String reportId,String reportStatus,String reviewStatus);

    RestResponse createDetailedReport(String taskId, String level, String reportName,String attachId,String taskName, HttpServletResponse response) throws Exception;

    String getSlopeModelIntensity(String taskId);

    List<RiskEnterpriseData> getriskData(String taskId);

    List<GasstationData> getGassData(String taskId);

    List<SeiEmeCapAssVO> getSeiEmeCapAss(String taskId);

    List<ReportInfoVO> getReportInfo();

    Map<String, Object> getJbReportListByTaskId(String taskId, int curPage, int pageSize);

    Map<String, Object> getXbReportListByTaskId(String taskId, int curPage, int pageSize);

    ReportManagement getById(String id);

    HistoryUploadReport getHistoryById(String id);

    //RestResponse transReportMsgToCpxx() throws Exception;
}
